package com.lpf.template;

// 抽象类
abstract class AbstractClass {
    // 模板方法，定义了算法的整体流程
    public final void templateMethod() {
        step1();
        step2();
        step3();
    }

    // 抽象方法，由子类实现
    protected abstract void step1();

    // 抽象方法，由子类实现
    protected abstract void step2();

    // 默认实现的方法，子类可以选择覆盖
    protected void step3() {
        System.out.println("默认的步骤 3");
    }
}
